<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Flot Examples: Stacking</title>
    <link href="../examples.css" rel="stylesheet" type="text/css">
    <!--[if lte IE 8]>
    <script language="javascript" type="text/javascript" src="../../excanvas.min.js"></script><![endif]-->
    <script language="javascript" type="text/javascript" src="../../jquery.js"></script>
    <script language="javascript" type="text/javascript" src="../../jquery.flot.js"></script>
    <script language="javascript" type="text/javascript" src="../../jquery.flot.stack.js"></script>
    <script type="text/javascript">

        $(function () {

            var d1 = [];
            for (var i = 0; i <= 10; i += 1) {
                d1.push([i, parseInt(Math.random() * 30)]);
            }

            var d2 = [];
            for (var i = 0; i <= 10; i += 1) {
                d2.push([i, parseInt(Math.random() * 30)]);
            }

            var d3 = [];
            for (var i = 0; i <= 10; i += 1) {
                d3.push([i, parseInt(Math.random() * 30)]);
            }

            var stack = 0,
                    bars = true,
                    lines = false,
                    steps = false;

            function plotWithOptions() {
                $.plot("#placeholder", [ d1, d2, d3 ], {
                    series: {
                        stack: stack,
                        lines: {
                            show: lines,
                            fill: true,
                            steps: steps
                        },
                        bars: {
                            show: bars,
                            barWidth: 0.6
                        }
                    }
                });
            }

            plotWithOptions();

            $(".stackControls button").click(function (e) {
                e.preventDefault();
                stack = $(this).text() == "With stacking" ? true : null;
                plotWithOptions();
            });

            $(".graphControls button").click(function (e) {
                e.preventDefault();
                bars = $(this).text().indexOf("Bars") != -1;
                lines = $(this).text().indexOf("Lines") != -1;
                steps = $(this).text().indexOf("steps") != -1;
                plotWithOptions();
            });

            // Add the Flot version string to the footer

            $("#footer").prepend("Flot " + $.plot.version + " &ndash; ");
        });

    </script>
</head>
<body>

<div id="header">
    <h2>Stacking</h2>
</div>

<div id="content">

    <div class="demo-container">
        <div id="placeholder" class="demo-placeholder"></div>
    </div>

    <p>With the stack plugin, you can have Flot stack the series. This is useful if you wish to display both a total and
        the constituents it is made of. The only requirement is that you provide the input sorted on x.</p>

    <p class="stackControls">
        <button>With stacking</button>
        <button>Without stacking</button>
    </p>

    <p class="graphControls">
        <button>Bars</button>
        <button>Lines</button>
        <button>Lines with steps</button>
    </p>

</div>

<div id="footer">
    Copyright &copy; 2007 - 2013 IOLA and Ole Laursen
</div>

</body>
</html>
